package com.baizhi.reflect;

/**
 * 获取对象的成员方法
 */
public class Reflect04 {
    public static void main(String[] args) {
        Class<Student> sClass = Student.class;

        /*
          getMethods()  可以获取类的所有的公共方法，包括父类的和接口的
          getDeclaredMethods(); 获取本类中的所有的方法，包括私有方法
         */
        //Method[] methods = sClass.getMethods();
//        Method[]  methods = sClass.getDeclaredMethods();
//
//
//        for (Method method : methods) {
//            System.out.println(method);
//        }

        /**
         * 获取包
         */
        Package aPackage = sClass.getPackage();
        System.out.println(aPackage);

        /**
         * 获取父类
         */
        Class<? super Student> superclass = sClass.getSuperclass();
        System.out.println(superclass);

        Class<?>[] interfaces = sClass.getInterfaces();
        for (Class<?> anInterface : interfaces) {
            System.out.println(anInterface);
        }
    }
}
